using System;
using System.IO;
using System.Web.UI;

namespace SIP.PN.FrontEnd.controles
{
    public enum MenuSolapas
    {
        Proyecto,
        Operario,
        Tarea,
        TipoDeProyecto
    }

    public partial class menu : UserControl
    {
        #region Page Load

        protected void Page_Load(object sender, EventArgs e)
        {
            OcultarLeyenda();
        }

        #endregion

        #region Propiedades

        public bool VisibilidadBotonNuevo
        {
            get { return btn_nuevo.Visible; }
            set { btn_nuevo.Visible = value; }
        }

        public bool VisibilidadBotonBuscar
        {
            get { return btn_buscar.Visible; }
            set { btn_buscar.Visible = value; }
        }

        public bool VisibilidadBotonGuardar
        {
            get { return btn_guardar.Visible; }
            set { btn_guardar.Visible = value; }
        }

        public bool VisibilidadBotonCancelar
        {
            get { return btn_cancelar.Visible; }
            set { btn_cancelar.Visible = value; }
        }

        public bool VisibilidadBotonVolver
        {
            get { return btn_volver.Visible; }
            set { btn_volver.Visible = value; }
        }

        public bool VisibilidadBotonExportar
        {
            get { return btn_exportar.Visible; }
            set { btn_exportar.Visible = value; }
        }

        public string DescripcionBotonExportar
        {
            set { btn_exportar.ToolTip = value; }
        }

        public bool VisibilidadBotonAyuda
        {
            get { return btn_ayuda.Visible; }
            set
            {
                btn_ayuda.Visible = value;
                sep_ayuda.Visible = value;
            }
        }

        #endregion

        #region Metodos

        public void MostrarLeyenda(string leyenda)
        {
            lbl_leyenda.Text = leyenda;
            div_error.Visible = true;
        }

        public void OcultarLeyenda()
        {
            MostrarLeyenda(string.Empty);
            div_error.Visible = false;
        }

        public void SetearMenuSolapa(MenuSolapas solapa)
        {
            switch (solapa)
            {
                case MenuSolapas.Proyecto:
                    tab_opciones.ActiveTabIndex = 0;
                    break;
                case MenuSolapas.Operario:
                    tab_opciones.ActiveTabIndex = 1;
                    break;
                case MenuSolapas.Tarea:
                    tab_opciones.ActiveTabIndex = 2;
                    break;
                case MenuSolapas.TipoDeProyecto:
                    tab_opciones.ActiveTabIndex = 3;
                    break;
            }
        }

        #endregion

        #region Eventos

        private event EventHandler<EventArgs> nuevoClick;
        public event EventHandler<EventArgs> NuevoClick
        {
            add { nuevoClick += value; }
            remove { nuevoClick -= value; }
        }

        private event EventHandler<EventArgs> buscarClick;
        public event EventHandler<EventArgs> BuscarClick
        {
            add { buscarClick += value; }
            remove { buscarClick -= value; }
        }

        private event EventHandler<EventArgs> guardarClick;
        public event EventHandler<EventArgs> GuardarClick
        {
            add { guardarClick += value; }
            remove { guardarClick -= value; }
        }

        private event EventHandler<EventArgs> cancelarClick;
        public event EventHandler<EventArgs> CancelarClick
        {
            add { cancelarClick += value; }
            remove { cancelarClick -= value; }
        }

        private event EventHandler<EventArgs> volverClick;
        public event EventHandler<EventArgs> VolverClick
        {
            add { volverClick += value; }
            remove { volverClick -= value; }
        }

        private event EventHandler<EventArgs> exportarClick;
        public event EventHandler<EventArgs> ExportarClick
        {
            add { exportarClick += value; }
            remove { exportarClick -= value; }
        }

        protected void btn_nuevo_Click(object sender, EventArgs e)
        {
            if (nuevoClick != null)
            {
                nuevoClick(this, e);
            }
        }

        protected void btn_buscar_Click(object sender, EventArgs e)
        {
            if (buscarClick != null)
            {
                buscarClick(this, e);
            }
        }

        protected void btn_guardar_Click(object sender, EventArgs e)
        {
            if (guardarClick != null)
            {
                guardarClick(this, e);
            }
        }

        protected void btn_cancelar_Click(object sender, EventArgs e)
        {
            if (cancelarClick != null)
            {
                cancelarClick(this, e);
            }
        }

        protected void btn_volver_Click(object sender, EventArgs e)
        {
            if (volverClick != null)
            {
                volverClick(this, e);
            }
        }

        protected void btn_exportar_Click(object sender, EventArgs e)
        {
            if (exportarClick != null)
            {
                exportarClick(this, e);
            }
        }

        protected void btn_ayuda_Click(object sender, EventArgs e)
        {
            string baseDirectory = AppDomain.CurrentDomain.BaseDirectory + "data\\";
            const string file = "9_SIP_MU.docx";
            string dir = Path.Combine(baseDirectory, file);
            FileStream fs = File.OpenRead(dir);
            byte[] buffer = new byte[fs.Length];
            fs.Read(buffer, 0, Convert.ToInt32(fs.Length));
            fs.Close();

            Response.ClearContent();
            Response.ClearHeaders();
            Response.AddHeader("content-disposition", "inline; filename=GPN_Ayuda.docx");
            Response.ContentType = "force-download";
            Response.BinaryWrite(buffer);
            Response.Flush();
            Response.End();
        }

        protected void tab_opciones_ActiveTabChanged(object sender, EventArgs e)
        {
            switch (tab_opciones.ActiveTabIndex)
            {
                //case 0:
                //    Response.Redirect("Default.aspx");
                //    break;
                case 0:
                    Response.Redirect("BuscadorProyecto.aspx");
                    break;
                case 1:
                    Response.Redirect("BuscadorOperario.aspx");
                    break;
                case 2:
                    Response.Redirect("BuscadorTarea.aspx");
                    break;
                case 3:
                    Response.Redirect("BuscadorTipoDeProyecto.aspx");
                    break;
            }
        }

        #endregion
    }
}